home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 2
/
Gekikoh Dennoh Club Vol. 2 (Japan).7z
/
Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin
/
cone
/
dj1000.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-10-13
|
3KB
|
129 lines
/*
たんぼさまんさのデジカメはyc記録?とにかくテストだ!
おそらくの予想:
1ピクセル2バイト(Y1バイト・C1バイト:unsigned char)
1ライン256ピクセル
ただし、なんかしらんけど、
偶数ラインのデータはshort単位でエンディアンがひっくり返っている雰囲気
504*378出力のとき
横方向には2ピクセルづつならべる。
さらに、奇数ラインの時は1ドットづらして出力。
↓切り捨て位置
0: o1o1o2o2o3o3o4o4o5o5o6o6
1: e1e1e2e2e3e3e4e4e5e5e6e6
2: o1o1o2o2o3o3o4o4o5o5o6o6
3: e1e1e2e2e3e3e4e4e5e5e6e6
縦方向には256ライン中252を3/2倍に脹らませる。
320*240
縦方向256ライン中、データが有効と思われるのは最初から240ライン
へたに上8ラインから読み込んだりしても、下8ラインが無効っぽい。
横方向へは5/4倍でいいか
ABCD AABCD *ディザ応用引き伸ばしパターン
EFGH → EFGGH
IJKL IJJKL
MNOP MNOPP
*/
#include <stdio.h>
#include <graph.h>
unsigned short buf[256*256];
main(argc, argv)
int argc;
char *argv[];
{
FILE *fp;
int x, y;
int r, g, b;
unsigned short col;
if( argc!=2 ) {
printf("DJ-1000用画像ローダ:現在モノクロ版\nusage:@>dj1000 file[.dat]\n");
goto quick_exit;
}
fp=fopen(argv[1], "rb");
if( fp==NULL ) {
printf("err:画像ファイル%sが見つかりません\n",argv[1] );
goto quick_exit;
}
fread(buf, 2, 256*256, fp);
fclose(fp);
screen(1, 3, 1, 1);
for( y=0; y<256; y++ ) {
for( x=0; x<255; x++ ) { //はみ出しの関係で右端1ドット無視
col=buf[y*256+x];
/* * yc記録なら関係なしよん
{
unsigned short t0, t1;
t0=(col>>8)&0x00ff;
t1=col&0x00ff;
col=(t1<<8)|t0;
}
* */
//りとるでためしたリスト
// 0rrrrrgggggbbbbb まあまあ
// 0rrrrrbbbbbggggg だめ
// 0gggggrrrrrbbbbb ややだめ
// 0gggggbbbbbrrrrr がめん真っ赤
// 0bbbbbrrrrrggggg だめ
// 0bbbbbgggggrrrrr
//リトルで試した r5, g6, b5
// rrrrrggggggbbbbb
r=(col>>8)&0b0000000011111111;
g=(col&0b0000000011111111);
// b=(col&0b0000000000000000);
r=r>>3;
g=g>>3;
// b=r;
// col=(r<<6)|(g<<11)|(b<<1);
if( y%2 ==0) {
col=(r<<6)|(r<<11)|(r<<1);
pset(x*2, y/2*3, col);
pset(x*2+1, y/2*3, col);
pset(x*2 , y/2*3+1, col);
}
else {
col=(g<<6)|(g<<11)|(g<<1);
pset(x*2+1, (y-1)/2*3+1, col);
pset(x*2+1, (y-1)/2*3+2, col);
pset(x*2+2, (y-1)/2*3+2, col);
}
}
}
quick_exit:
;
}
/* [ EOF ] */